The intents framework includes a service discovery mechanism and enables a first application to communicate with a second application associated with a service without any requirement that either application has foreknowledge of the other. As a result, a number of general purpose intents or “actions” can be implementing by the second application based on general data provided by the first application. For example, a media-based application executing on a computing device can use the intents framework to upload a user profile image to many different services (e.g., social networking services). Each social networking service can have a different application with different expectations and requirements, but each can leverage the intents framework in a general-purpose way to communicate with the media-based application and receive the image.